	
Ext.define('gestionConf.ItemForm', {
    extend: 'Ext.form.Panel',
    alias: 'widget.itemform',
    requires: ['Ext.form.field.Text'],
    initComponent: function(){		
        Ext.apply(this, {
            activeRecord: null,
            iconCls: 'icon-item',
            frame: true,
            defaultType: 'textfield',
            bodyPadding: 20,
            fieldDefaults: {
                anchor: '100%',
            },
            items: [{
                fieldLabel: 'Id',
                name: 'id',
                type: 'int',
                itemId: 'idItem',
                hidden: true,
            },{
                fieldLabel: 'IdFase',
                name: 'idFase',
                type: 'int',
                itemId: 'idFase',
                hidden: true,
            },{
                fieldLabel: '<b>Nombre</b>',
                name: 'nombre',
                fieldStyle: 'background-color: transparent; border: none; background-image: none;',
                itemId: 'nombre',
            },{
                fieldLabel: '<b>Descripcion</b>',
                name: 'descripcion',
                fieldStyle: 'background-color: transparent; border: none; background-image: none;',
                itemId: 'descripcion',
            },{
                fieldLabel: '<b>Complejidad</b>',
                name: 'complejidad',
                fieldStyle: 'background-color: transparent; border: none; background-image: none;',
                type: 'int',
                itemId: 'idComplejidad',
                
            },{
                fieldLabel: '<b>Version</b>',
                name: 'version',
                fieldStyle: 'background-color: transparent; border: none; background-image: none;',
                itemId: 'f_version',
                hidden: true,
            },{
                fieldLabel: '<b>Estado</b>',
                name: 'estado',
                itemId: 'f_estado',
                hidden: true,
            },{
                fieldLabel: 'Aux',
                name: 'aux',
                hidden: true,
            }],
            dockedItems: [{
							xtype: 'toolbar',
							items: [
							{
							iconCls: 'icon-aprobar',
							itemId: 'aprobar',
							text: '<b>Aprobar</b>',
							hidden: true,
							scope: this, 
							handler: this.onAprobar
						},{
							iconCls: 'icon-desaprobar',
							itemId: 'desaprobar',
							text: '<b>Desaprobar</b>',
							hidden: true,
							scope: this, 
							handler: this.onDesaprobar
						},{}]
				},{
				weight: 1,
                xtype: 'toolbar',
                dock: 'bottom',
                items: ['->',{
							iconCls: 'icon-atributos',
							itemId: 'atributos',
							text: '<b>Ver Atributos</b>',
							hidden: true,
							scope: this, 
							handler: this.onAtributos
						},{
                    iconCls: 'icon-reset',
                    text: '<b>Reset</b>',
                    scope: this,
                    handler: this.onReset
                }]
            }]
        });
        this.callParent();
    },

    setActiveRecord: function(record){
        this.activeRecord = record;
        if (record) {
			
			this.getForm().loadRecord(record);
			
			estado = extraer(this.getForm().getValues(true),'&estado=','&aux=')
			
			if(estado == 'Aprobado'){ this.down('#desaprobar').show(); this.down('#aprobar').hide();}	
			else { this.down('#aprobar').show(); this.down('#desaprobar').hide();}
            this.down('#atributos').show();           
            
        } else {

            this.down('#aprobar').hide();
            this.down('#atributos').hide();
            this.down('#desaprobar').hide();
            
            //this.getForm().reset();
            this.down('#descripcion').setValue("");
            this.down('#idComplejidad').setValue("");
            this.down('#idItem').setValue("");
            this.down('#nombre').setValue("");
            
        }
    },


     
	onAprobar: function(){
			var form = this.getForm();
                    form.submit({                        
                        url: 'aprobar_items',
                        params: {	submit: 'submit'	},
						method: "post",
						success: function(form, action) {
														
								var jsonData = Ext.JSON.decode(action.response.responseText);								
								var resultMessage = jsonData['mensaje'];
								
								this.fireEvent('refresh');
								
								Ext.Msg.show({ 		title: '<br><p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
													msg: resultMessage, 	icon: 'ext-mb-ok',
								});	/*
							    Ext.Msg.show({  
									title: '<br><p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
									msg: 'Item aprobado satisfactoriamente', //<- El mensaje  
									icon: 'ext-mb-ok',
								});*/
                        },
                        scope: this,                        
                        failure: function(form, action) {	
									Ext.Msg.show({  
										title: '<br><p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
										msg: 'No se ha podido aprobar el item', //<- El mensaje  
										icon: 'ext-mb-error',
									});
                        }
                    });          
	}, 
	
     
	onDesaprobar: function(){
			var form = this.getForm();
                    form.submit({                        
                        url: 'desaprobar_items',
                        params: {	submit: 'submit'	},
						method: "post",
						success: function(form, action) {
								this.fireEvent('refresh');
								var jsonData = Ext.JSON.decode(action.response.responseText);								
								var resultMessage = jsonData['mensaje'];
								Ext.Msg.show({ 		title: '<br><p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
													msg: resultMessage, 	icon: 'ext-mb-ok',
								});
								/* 
							    Ext.Msg.show({  
									title: '<br><p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
									msg: 'Item desaprobado satisfactoriamente', //<- El mensaje  
									icon: 'ext-mb-ok',
								});*/
                        },
                        scope: this,                        
                        failure: function(form, action) {	
									Ext.Msg.show({  
										title: '<br><p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
										msg: 'No se ha podido desaprobar el item', //<- El mensaje  
										icon: 'ext-mb-error',
									});
                        }
                    });          
	}, 
		
	onAtributos: function(){
			var form = this.getForm();
			this.fireEvent('AtributosItem', form.getValues(true));            
	},
	
    onReset: function(){
        this.setActiveRecord(null);
        //this.getForm().reset();
        this.fireEvent('reset');
    }
    
});


function extraer(texto, etqini, etqfin){
		var ind0, ind1, parte ="";
		ind0 = texto.indexOf(etqini);
		if (ind0 >=0){
			ind1 = texto.indexOf(etqfin);
			if (ind1>ind0)
				parte = texto.substring(ind0+etqini.length, ind1);
		}
		return parte;
}
